const http = require('http');
const fs = require('fs');
const zlib = require('zlib');

// 不使用流
// http.createServer((req, res) => {
//   console.log("__dirname=",__dirname)
//   fs.readFile(`${__dirname}/index.html`, (err, data) => {
//     if (err) {
//       res.statusCode = 500;
//       res.end(String(err));
//       return;
//     }
//     res.end(data);
//   });
// }).listen(8000);

// 使用流(更少代码，更加高效提供一个缓冲区发送到客户端)
// http.createServer((req, res) => {
//   fs.createReadStream(`${__dirname}/index.html`).pipe(res);
// }).listen(8000);

//使用流 + gzip
// http.createServer((req, res) => {
//   res.writeHead(200, {
//     'content-encoding': 'gzip',
//   });
//   fs.createReadStream(`${__dirname}/index.html`)
//     .pipe(zlib.createGzip())
//     .pipe(res);
// }).listen(8000)

// 流的错误处理
// const stream = fs.createReadStream('not-found');
// stream.on('error', (err) => {
//   console.trace();
//   console.error('Stack:', err.stack);
//   console.error('The error raised was:', err);
// })